package com.dc.system.model;

import java.util.*;
import java.util.regex.Pattern;

import static java.util.regex.Pattern.compile;

/**
 * @Description: ApprovalProviso 分条件审批
 * @Author: ChenXueLi
 * @Date: 2018-05-02 15:15
 */
public class ApprovalProviso {

    /**
     * 主键id
     */
    private Integer proviso_id;

    /**
     * 条件名称
     */
    private String proviso_name;

    /**
     * 当前值的类型（判断应该要判断什么，例如，职务，部门，指定的申请人，数字的判断）
     */
    private String proviso_value_type;

    /**
     * 值
     */
    private String proviso_value;

    /**
     * 类型和值一一对应个的集合
     */
    private Map<String, List<String>> proviso_type_value;

    /**
     * 优先级
     */
    private Integer proviso_order;

    /**
     * 逻辑运算符
     */
    private String logical_operator;

    /**
     * 关系运算符
     */
    private String relation_operator;

    /**
     * 满足条件
     */
    private String proviso_satisfaction;

    /**
     * 满足条件之后，审批人类别（0指定人，1指定职务，2指定部门）
     */
    private Integer approver_type;

    /**
     * 满足条件之后，审批人（多人用,分隔）
     */
    private String approver;

    /**
     * 满足条件之后，审批顺序（0顺序 1同步）
     */
    private Integer approval_order = 0;

    /**
     * 满足条件之后，审批通过的类型(0全部通过才算通过 1一人通过就算通过 2按自定比例通过才算通过)
     */
    private Integer approval_pass_type = 0;

    /**
     * 满足条件之后，通过需要的比例
     */
    private Double approval_pass_proportion;

    /**
     * 计算结果，只做计算用
     */
    private Boolean result_flag;

    /**
     * 创建人用户id
     */
    private int create_user_id;

    /**
     * 创建人用户名
     */
    private String create_user_name;

    /**
     * 创建时间
     */
    private Date create_time;

    /**
     * 更新人用户id
     */
    private int update_user_id;

    /**
     * 更新人用户名
     */
    private String update_user_name;

    /**
     * 更新时间
     */
    private Date update_time;

    /**
     * 0删除1存在
     */
    private int is_deleted;

    /**
     * 版本号
     */
    private int version;

    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public Integer getProviso_id() {
        return proviso_id;
    }

    public void setProviso_id(Integer proviso_id) {
        this.proviso_id = proviso_id;
    }

    public String getProviso_name() {
        return proviso_name;
    }

    public void setProviso_name(String proviso_name) {
        this.proviso_name = proviso_name;
    }

    public Integer getProviso_order() {
        return proviso_order;
    }

    public void setProviso_order(Integer proviso_order) {
        this.proviso_order = proviso_order;
    }

    public String getLogical_operator() {
        return logical_operator;
    }

    public void setLogical_operator(String logical_operator) {
        this.logical_operator = logical_operator;
    }

    public String getRelation_operator() {
        return relation_operator;
    }

    public void setRelation_operator(String relation_operator) {
        this.relation_operator = relation_operator;
    }

    public int getCreate_user_id() {
        return create_user_id;
    }

    public void setCreate_user_id(int create_user_id) {
        this.create_user_id = create_user_id;
    }

    public String getCreate_user_name() {
        return create_user_name;
    }

    public void setCreate_user_name(String create_user_name) {
        this.create_user_name = create_user_name;
    }

    public Date getCreate_time() {
        return create_time;
    }

    public void setCreate_time(Date create_time) {
        this.create_time = create_time;
    }

    public int getUpdate_user_id() {
        return update_user_id;
    }

    public void setUpdate_user_id(int update_user_id) {
        this.update_user_id = update_user_id;
    }

    public String getUpdate_user_name() {
        return update_user_name;
    }

    public void setUpdate_user_name(String update_user_name) {
        this.update_user_name = update_user_name;
    }

    public Date getUpdate_time() {
        return update_time;
    }

    public void setUpdate_time(Date update_time) {
        this.update_time = update_time;
    }

    public int getIs_deleted() {
        return is_deleted;
    }

    public void setIs_deleted(int is_deleted) {
        this.is_deleted = is_deleted;
    }

    public String getProviso_satisfaction() {
        return proviso_satisfaction;
    }

    public void setProviso_satisfaction(String proviso_satisfaction) {
        this.proviso_satisfaction = proviso_satisfaction;
    }

    public String getProviso_value_type() {
        return proviso_value_type;
    }

    public void setProviso_value_type(String proviso_value_type) {
        this.proviso_value_type = proviso_value_type;
    }

    public String getProviso_value() {
        return proviso_value;
    }

    public void setProviso_value(String proviso_value) {
        this.proviso_value = proviso_value;
    }

    public Map<String, List<String>> getProviso_type_value() {
        return proviso_type_value;
    }

    public void setProviso_type_value(Map<String, List<String>> proviso_type_value) {
        this.proviso_type_value = proviso_type_value;
    }

    public Integer getApprover_type() {
        return approver_type;
    }

    public void setApprover_type(Integer approver_type) {
        this.approver_type = approver_type;
    }

    public Integer getApproval_order() {
        return approval_order;
    }

    public void setApproval_order(Integer approval_order) {
        this.approval_order = approval_order;
    }

    public Integer getApproval_pass_type() {
        return approval_pass_type;
    }

    public void setApproval_pass_type(Integer approval_pass_type) {
        this.approval_pass_type = approval_pass_type;
    }

    public Double getApproval_pass_proportion() {
        return approval_pass_proportion;
    }

    public void setApproval_pass_proportion(Double approval_pass_proportion) {
        this.approval_pass_proportion = approval_pass_proportion;
    }

    public Boolean getResult_flag() {
        return result_flag;
    }

    public void setResult_flag(Boolean result_flag) {
        this.result_flag = result_flag;
    }

    public String getApprover() {
        return approver;
    }

    public void setApprover(String approver) {
        this.approver = approver;
    }
}
